package shujia.day16;

import java.util.Timer;
import java.util.TimerTask;

/*
    定时器：Timer
    定时任务：TimerTask

    关系：创建定时任务由定时器进行调度。
    Timer中提供了两种调度方式：
        public void schedule(TimerTask task, long delay) 延迟指定时间后执行
        public void schedule(TimerTask task,long delay,long period) 延迟指定时间后执行，之后每间隔固定时间重复执行

 */
public class TimerDemo {
    public static void main(String[] args) {
        //创建定时器
        //Timer()
        //创建一个新的计时器。
        Timer timer = new Timer();
        //public void schedule(TimerTask task, long delay)
        timer.schedule(new MyTask(timer), 10000L);
        //public void schedule(TimerTask task,long delay,long period) 延迟指定时间后执行，之后每间隔固定时间重复执行
//        timer.schedule(new MyTask2(), 10000L, 2000L);
    }
}

//创建一个定时任务类，继承TimerTask抽象类，重写run方法，编写任务代码逻辑
class MyTask2 extends TimerTask{

    Timer timer;

    public MyTask2() {
    }

    public MyTask2(Timer timer) {
        this.timer = timer;
    }

    @Override
    public void run() {
//        for(int i=1;i<=3;i++){
//            Thread.sleep();
//        }
        System.out.println("砰！！！爆炸了！！！");
//        fun1();
        // 关闭定时器
//        timer.cancel();
    }


//    public void fun1(){
//
//    }
}


//创建一个定时任务类，继承TimerTask抽象类，重写run方法，编写任务代码逻辑
class MyTask extends TimerTask{

    Timer timer;

    public MyTask(Timer timer) {
        this.timer = timer;
    }

    @Override
    public void run() {
        System.out.println("砰！！！爆炸了！！！");
//        fun1();
        // 关闭定时器
        timer.cancel();
    }


//    public void fun1(){
//
//    }
}
